package com.lb.time;

import java.time.Instant;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;

/**
 * @author zhangjun
 * @since 2025/07/09
 */
public class TimeTest {
    public static void main(String[] args) {
        long timestamp = 1751952509461L;

        // 转为北京时间（东八区）
        ZonedDateTime dateTime = Instant.ofEpochMilli(timestamp)
                .atZone(ZoneId.of("Asia/Shanghai"));

        // 格式化输出
        String formatted = dateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
        System.out.println(formatted);

        System.out.println(isTokenExpiringSoon(1751952509461L, 30167611));
    }

    /**
     * 判断 token 是否在 24 小时内即将过期
     *
     * @param time        token 生成时间（毫秒时间戳）
     * @param expiresIn   token 有效期（单位：秒）
     * @return true 表示剩余有效期小于一天
     */
    public static boolean isTokenExpiringSoon(long time, long expiresIn) {
        long expireTimeMillis = time + expiresIn * 1000L;
        long nowMillis = System.currentTimeMillis();
        long millisInOneDay = 24 * 60 * 60 * 1000L;

        return (expireTimeMillis - nowMillis) < millisInOneDay;
    }
}
